Project gap "GIMP Animation Package" version 2.0 -------------------------------------------------------------------- Introduction -------------------------------------------------------------------- The GIMP is a great program for creating and manipulating pixelbased images of many types. The plug-in concept and the procedural database allows programmers to extend the GIMP's functions in many ways. In the GIMP there are some plug-in's supporting animation features, based on layers where each layer of the image is considered as one frame of the animation. GIMP-GAP is a collection of plug-ins that extends the GIMP's animation capabilities by supporting the creation of more complex animations. Idea: With the help of the GIMP-GAP plug-in collection GIMP can operate on a series of images as if they were a single one. Each frame of an animation can have multiple layers. The user can step from frame to frame by pressing an accelerator key or can do image manipulations that are propagated automatically to a selected range of frames. Layeranimated images can be combined with frames (multiple images) as you can see in the "Move Path" plug-in or converted to frames and vice-versa. Concept: An animation consists of a series of images of the same size & type (frames). The concept of GIMP-GAP is to store each frame seperate on disk, using a filename convention that includes the frame number and extension. Example: film_000001.xcf, film_000002.xcf .. film_000012.xcf GIMP's xcf fileformat should be used to store the frames, so that each frame can have more layers. Sound is not supported in this concept, but will be handled as sperate audiofiles at encoding time or in the playback module. The playback framerate and other common information about the animation are stored in an extra videoinfo textfile film_vin.gap This requires a lot of diskspace but offers much more flexibility while working on the animation. To save diskspace you may optional use gziped xcf frames (takes extra time to un/compress) by using the extension .xcfgz (gzip has to be installed on your system to do that) If you can accept lossy compression you may also use the xjt fileformat to store your frames on jpeg based compression. (the curent implementation of the xjt fileformat is resticted to UNIX operating systems) The final product can be encoded as videofile or converted to one multilayerd image that can be saved as animated-gif (or, in the future in other animation formats when other load/save modules were added to the GIMP) GIMP-GAP provides automated fileformat conversions for the frames of an animation. This conversions offer a way to use external video encoder programs. All GIMP-supported imagefileformats may be used. On UNIX Platforms GIMP-GAP provides frontend dialog interfaces for software MPEG video encoder programs. (mpeg_encode and mpeg2encode) On UNIX platforms GIMP-GAP also provides an XANIM frontend to load frames from multimedia fileformats (avi, quicktime, ....) based on the XANIM multimedia player. please note that XANIM is old and unmaintained software. Onionskin Layers GIMP-GAP does support onionskin layers, this features are described in the file README_onion.txt -------------------------------------------------------------------- Installation -------------------------------------------------------------------- This version of GIMP-GAP is a seperated Package since GIMP-1.3.x and does not compile/run with GIMP-1.2.x or older GIMP versions. ./autogen.sh # includes the ./configure call make make install Notes: - GIMP 1.1.4 upto GIMP-1.2.x have included older versions of GIMP-GAP as standard plug-in (named gap) with no need of extra installation. - GIMP-GAP provides frontend dialogs for: - mpeg_encode (V1.5R2) - mpeg2encode (V1.2) - xanim 2.80.1 exporting edition (with the extensions from loki entertainment) The frontends and the external programs need UNIX environment to run. If you like to use that stuff, you should install mpeg_encode and mpeg_play mpeg2encode and mpeg2decode xanim 2.80.1 (loki) on your system. - The GIMP-GAP playback module provides audiosupport for audiofiles in RIFF WAV format. The audiosupport is based on wavplay (tested with version 1.4). If you want to have audiosupport you must install wavplay and configure and compile gimp-gap without the configure option --disable-audiosupport As far as i know, wavplay is available only for LINUX, but i may be wrong... The GIMP-GAP playback module further provides a button for converting other audiofile formats to RIFF WAV. If you want to use that feature the external following programs must be installed: - sox - lame - There is no need to install all those external programs to compile GIMP-GAP. -------------------------------------------------------------------- Supported Videoformats -------------------------------------------------------------------- Read(decode): Any multimedia fileformat, XANIM can read (AVI, Quicktime, and a lot more, see xanim docu for more information) Write (encode) MPEG1/2 based on the external encoders mpeg_encode and mpeg2encode The GIMP_VIDEO_ENCODER project is an additional Package for GIMP-GAP that implements Video Encoding. It is still under development. An unstable prototype of the GIMP_VIDEO_ENCODER is available for GIMP-1.2.x. -------------------------------------------------------------------- How to use -------------------------------------------------------------------- - Creating multiple frames (video frames) - --------------------------------------- - from an existing single image Save your image as XCF file. (/File/Save as) use a name that ends up in _000001.xcf (or _000001.xcfgz) Then duplicate your image (/Video/Duplicate) You'll be asked how much copies you need. (Note: all copies are stored on disk immediate without explicite save) - from an existing layeranimated multilayer image use /Video/Split Img to frames This will create frames, a series of images on disk, with a name that ends up in _000001.xcf). Optional you may use other extensions. (.xcfgz, .jpg ...) WARNING: The extension defines the fileformat of the frames. Most of the other formats (than GIMP's .xcf format) can not save multilayer frames, or frames with alpha channels. - from outside the GIMP You may rename and copy existing XCF images according to the frame naming conventions. _000001.xcf _000002.xcf ... Then load (only one of them) into the GIMP. - Navigation (Goto) - ------------------ It is recommanded to define some accelerator keys for quick walk through the frames. Here are my settings (excerpt from my $HOME/.gimp/menurc ) (menu-path "/Video/Goto/First Frame" "1") (menu-path "/Video/Goto/Prev Frame" "1") (menu-path "/Video/Goto/Next Frame" "2") (menu-path "/Video/Goto/Any Frame" "3") (menu-path "/Video/Goto/Last Frame" "2") Alternatives: - You may open the GIMP-GAP videoplayer (menu-path: /Video/Playback...) and use the player for visual positioning (use the FrameNr Button or the GO-Button array for that task) - You may open the GIMP-GAP video navigator dialog (menu-path: /Video/VCR Navigator) - GAP VCR Navigator: - ------------------ Start from menu: /Video/VCR Navigator The VCR Navigator dialog shows a thumbnail view, frame_number and time (mm:ss:msec) of the frames in a scrollable listbox. framerate: You can set the global framerate for all frames here. (Note: changing the framerate in the VCR Naviagtor dialog window does not change the number of frames. Therefore the motion does speed up or slow down at playback. If you want to keep your motion speed constant at increased framerate use the "Frames Density" tool to create the requested additional frames) timezoom: with timezoom you tell the VCR Navigator dialog window to display every n-th frame only, to get an overview on larger videos. Framerate and timezoom values are stored in a gap vide info file named: _vin.gap Double click with left mousebutton on a frame in the listbox performs a goto operation, which loads the clicked frame as current frame. Single click with left mousebutton selecets one frame (deselecting all others) Ctrl click with left mousebutton selecets one frame (additional to the current selection) Shift click with left mousebutton selects a range of frames. Click with right mousebutton brings up a pop-up menu Pop-up menu copy, cut paste before paste after paste replace clear pastebuffer select all select none cut and copy is sensitive if any frame is selected, paste and clear pastebuffer is sensitive if video paste buffer contains at least one frame. This menu enables you to cut, copy and paste the selected frames even between different videos. Size and type of the handled frames are converted at pasting if needed. The palette of the current frame is used for the pasted frames when the destination type is INDEXED. There are 3 types of paste: before: Insert frames before the current frame. Use this mode if you want to insert frames before the first frame. after: Insert frames after the current frame. Use this mode if you want to insert frames after the last frame. replace: Replace frames beginning at the current frame with the frames from the video paste buffer, and does overwrite existing frames. If there are selected frames in the VCR Navigator dialog window, the current frame is set to the first selected frame and the paste opration is releted to the first selected frame The paste buffer is located in the filesystem and can be configured in the gimprc file: (video-paste-dir "/home/hof/gap_video_paste_dir") (video-paste-basename "gap_video_paste_") The duplicate button in the VCR Navigator dialog duplicates the selected frames immediate into the current video, without writing to the video paste buffer. The delete button in the VCR Navigator dialog deletes the selected frames without writing to the video paste buffer. IMPORTANT NOTE: There is no undo for GIMP-GAP operations, and the deleted frames can not be restored. - Playback - -------- Start the playback plug-in from the menu: /Video/Playback... This player does playback of your video frames. Along with the video you can also do playback of an audiofile. The player is a tool that should help to give a motionpreview and allows visible positioning for the animation designer. There is NO support for playback of videoformats (like MPEG, AVI, ....) Some notes on the audiosupport: - The audio playback checks for the existence of the wavplay audioserver executable file in your gimprc file (wavplaypath "/usr/X11R6/bin/wavplay") then checks the environment variable WAVPLAYPATH=/usr/X11R6/bin/wavplay and finally searches an executable named wavplay in all directories defined by your PATH environment variable. - Audiosupport can be completely turned off at compiletime. If Audiosupport was enabled at compiletime, The playback dialog window contains a notebook widget tab named "Audio Options" - Audio is always turned off, while frames are played backwards. - The audioplayback samplerate tries to follow the videospeed. If videoframes are played at the original speed, audio is played at the normal samplerate. If video speed is too fast audio may not follow synchron. - If the "Excact Timing" checkbox is off (unchecked) video and audio will not play synchron ! Video Options: - Play (>) button Start the playback, or switch to forward play if already playing reversed. - PlayReverse (<) button Start the reversed playback, or switch to reversed play if already playing forward. - Pause button (||) Stop playback, or go to fist frame of the selcted frame range if not playing. Go to the end of selected frame range if right mousebutton was used. or go to the active framenr if the midle mouse button was used. (the active framenumber is the one that is currently loaded in the GIMP image window from where you invoked the player) - The GO button array the 50 blank buttons above the preview build up the GO butto narray, This tool is for positioning and manual speedcontrol. Move the mousepointer over those buttons to display frames in sequence as fast as you move the mouse. Moving right is forward, left is backward. Tip: The positioning is done relative to the point where the mouse entered the GO button array. If you reached the leftmost GO button at framenr 50 and want to go more backwards (to framenr 35), just move the Mouse outside the GO button array (up or down) and then enter again from the right side, and continue moving to the left, but now keeping the mouse inside the GO button array until the desired frame (Nr. 35) is reached. WARNING: This feature requires that the "Use Thumbnails" checkbutton is turned ON, and can do useful work only if your frames have thumbnail files. Even fast machines may have problems to deliver full sized multilayer frames in time. (depending on size of the frames, number of layers and IO performance of your hardware) - From and To spinbuttons: Here you can select a framerange by entering the begin and end framenumber. - FrameNr button With a mouseclick on the "FrameNr" button You can load the frame (the number that is currently on the players display) into the active image window where you can paint on it. Alternative you can also click on one of the GO buttons, or on the players display to reload the active image with the desired frame. - FrameNr spinbutton This widget displays the current framenr of the player. you can enter any availale framenumber. The timepos: mm:ss:sec displays the current position in Minutes:Secons:Microseconds (The time calculation is always based on the original speed. This is the framerate of your animation as found in the _vin.gap file. You can change the framerate in the VCR Navigator window) - Speed button Reset Speed to the original (the framerate of your Animation) (a 2.nd click goes back to the previous enters Speed) - Speed spinbutton Here you can enter the desired playback speed. The available range is 1 upto 250 frames/sec. Please note that 250 frames/sec may not be reached on most machines. If the exact_timing checkbutton is ON, the 250.th frame will be reached in time (after 1 second), but if your machine can handle only 25 frames in one second you will see just frame 10, 20, 30, 40, .... , 230, 240, 250 - Size button Set the standard thumbail size There are two standard sizes "normal" 128 Pixels "large" 256 Pixels this button toggles between both sizes. If you hold the SHIFT key wihle clicking the size button, the preview is scaled to 1:1 original framesize. - Loop checkbutton: Plays in loop if ON, otherwise play once and then stop. - Selection only Play only frames within the selected range. if not checked (OFF) play all frames. - PingPong Play alternating backward/forward - Exact Timing if this checkbutton is ON (the checked state) the player tries to keep the frametiming as exact as possible. if your machine is not fast enough one or more frames of the sequence are not displayed (dropped) and the next frame is diplayed in time. if this checkbutton is OFF all frames are displayed. this leads to more and more growing delay depending on the the power of your machine. - Use Thumbnails use thumbnail files if available. Both the PNG based open thumbnails standard and the older .xvpics based thumbnail files are supported. Thumbnail based playback has reduced quality. If there are just .xvpics thumbnail files the quality is very miserable. The full original frame images are read in case when no thumbnail file is available, (Note: It also does create the thumbnail file in such a case, but this is only done, if the preferences setting permits normal (or large) thumbnail files) ) If the "Use Thumbnails" checkbutton is switched OFF the player always reads the full original sized frame images Playback with full frame image read mode is very slow, even on fast machines, but gives the original quality. Audio Options: NOTE: The audio options are not existent when compiled with --disable-audiosupport. - Audiofile: Here you can specify the audiofile. (you may also use the "FileBrowser" button) - Volume: *** Volume control is not implemented yet *** The "Enable" checkbox can turn ON/OFF audio playback. - Offset Here you can shift the audiostart against the video startframe. An offset value 0 will start auduio at the first frame. Negative offsets will start audio with a delay of n frames. Positive offsets will skip the beginning of the audiofile. The skipped duration is equal to the time it takes to play n frames at original framerate. The "Offset" label shows the audio shift in unit Minutes:Secs:Millisecs. The "Audiotime" label shows the total playing time of the audiofile (without taking care of the offset shifts) The "Audioframes" label shows the total playing time of the audiofile in unit frames where frames are played at the original framerate of the video frames. The ohter labels show informations about the audiofile. - Nuber of Samples - Samplerate (in Samples / Sec) - Channles (usual 2 for stereo) - Bits/Sample If no valid audiofile was specified, all values are filled with 0. - Copy As Wavfile This button provides conversion of audiofile formats to RIFF WAV. It opens a subdialog where the name of the wavfile can be entered and where you can optional specify a new samplerate if you want to resample down to lower samplerates. IMPORTANT NOTE: - You need the external programs sox and lame to run that feature, because the provided converter script audioconvert_to_wav.sh is based on that programs. - If you have another external audio converter program, you can configure GIMP-GAP to use that program rather than the standard converter script audioconvert_to_wav.sh The preferred way is to edit your gimprc file and add a line like this on: (audioconvert_program "/usr/local/bin/my_private_audioconverter") The 2nd way is to set an Environmentvariable: export AUDIOCONVERT_TO_WAV=/usr/local/bin/my_private_audioconverter Playback Alternatives: You can convert your frames to one multilayer image menu: /Video/Frames to Image) And then playback the newly created Image menu: /Filters/Animation/Playback The GIMP-GAP VCR Navigator dialog playback button makes those steps automatic when the SHIFT Key is pressed together with the mouseclick, The playback multilayer image contains only the selected frames, or all frames if no selection was made. - Move Path (make things move) - ---------------------------- Start from Menu: (/Video/Move Path) For this plug-in you need a series of frames (destination video frames) and one single image or another series of frames. (source object or moving object) If you use a single image as source object all the layers in it can be used as source frames. The source frames are copied into the destination frames. This copy can be transformed in many ways, using controlpoints and appears as one new layer in each handled destination frame. The X/Y controlpoint coordinates affects the offest of the copied new layer in the destination frame(s). All controlpoints build up a path that defines how the copied new layer moves within the destination frames. - The source image must be opened in the GIMP - The source image must be another Image than the destination frame (if you really want to copy layers from destination frame to destination frame(s) you have to duplicate it first) - The source image must be from the same type (RGB, INDEXED ..) as the destination frame. In other words: To run the 'Move Path' plug-in you have to open at least 2 images of the same type. The selected layer(s) of the source image or frame is (are) copied into the selected range of frames. Each handled frame recieves exactly one copy of the selected layer from the source image, where the copy will be modified by transformations such as scaling, changing transparency and more, according to the controlpoint settings. If you use stepmodes "Loop", "Loop Reverse", "Once", "OnceReverse" or "PingPong" the layers of the source image are stepped through, and the next handled frame recieves the next layer from the source image's layerstack. For the frame based stepmodes ("Frame Loop", "Frame PingPong" ...) the selected source(layer) should be a layer of another video frame. In the frame based stepmodes the source object is considered as video frames and stepping is done from frame to frame (and not from layer to layer) The inserted layer is always a copy of one frame of the source object animation (no matter which source layer was selected) where all the visible source layers are merged to build up the moving object. The frame based modes can be used to mix videos with many frames, because there is no need to convert one of the videos to a multilayer image. If you use a normal image (that is not a video frame) as source for the frame based stepmodes it acts like an animation with only one frame. The "Step Speed" factor decides how fast to step through the source object, in relation to the target frames. With factor 1.0 source and target will step synchron. Factor 0.5 slows down the source steps to half speed. The same source layer is copied into 2 frames, before the advance to the next source layer is done. The "Step Speed" factor is not relevant for the stepmodes "None" and "FrameNone". Selection Handling The "Move Path" plug-in can ignore or respect selections (selected Areas) in the source image (or source frame(s)) The Optionmenu Modes are:. - "Ignore Selection (in all Source Images)" Ignores all selections. - "Use Selection (from Initial Source Image)" Takes the selection from the initial source image (or frame) and applies it to all handled copies. This makes all unselected pixels of the moving object transparent. You can get smooth edges depending on the feather_radius settings in the controlpoints. - "Use Selections (from all Source Images)" Uses all selections in all source frames. The source frames without selections are handled as if all pixels were selected. This mode is only relevant for the frame based stepmodes, "Frame Loop", "Frame Once", "Frame Loop Reverse", "Frame OnceReverse", "Frame PingPong" The copies of the source layer(s) were modified by transitions with varying parameters. Parameters: - SourceLayer (depends on Stepmode) - Position (X/Y) - Size Scaling (Width/Height) - Opacity - Rotation (angle from -360 to +360 degrees) - Selection Feather Radius (in Pixels) the feather radius controls how much to smooth the edges of the selections (this is only relevant for source selection handling modes other than "Ignore Selection") - Perspective Transformation (transformation factors for X/Y of the 4 Corner Points) Perspective transformation factors are scaling factors that are applied to the coordinates of the 4 corners. If all 8 Coordinates have the value 1.0 no scaling is done and the result is the same as the original. Scaling with factor 0 moves the affected (x or y) coordinate to the middle. Factor 2.0 applied to Coorinate moves it outwards by half of the original width (for X coordinates) or hlaf height (for Y coordinates). 1/1 1/1 +------------+------------+ | | | | x1/y1 | x2/y2 | | 0.5/0.5 | 0.5/0.5 | | o...............o | | . | . | | . | . | | . |0.0 . | +------------+------------+ .| | |. . | | | . . | | | . . | | | . . | | | . . | | | . . | | | . . +------------+------------+ . . 1/1 1/1 . . . o...............................................o 1.5/1.5 1.5/1.5 x3/y3 x4/y4 The controlpoint parameters were changed linear from one starting controlpoint to the next controlpoint. Per default the move path has only only 1 controlpoint. (So the source layers(s) are copied to all frames of the framerange at constant position, size and opacity) If you want your source layers to move, grow, rotate or to fade (in or out) you have to add one more controlpoints (limited to 1024) to define a path. The affected range is selected by start frame - end frame. Each affected frame recieves exactly one copy of the (current) source layer adjusted to the current controlpoint prameters. The layerstack defines if the pasted copy appears in the foreground (0 == on top) or below other layers that are already in the frame. With the toggle button 'Clip To Frame' the the copied layer is clipped to the destination frames image width and height. With the frame number in the preview frame you can select the frame number to display in the preview. You have to press the "UpdPreview" button for explicite update of the preview. Controlpoints: The move path is defined by contolpoints. Only the current cotrolpoint is displyed with all its values. If checkbutton "Show Path" is on, all the controlpoints are shown in the preview window, connected with pathlines. Furter it enables picking controlpoints and draging controlpoint koordinates (X/Y) in the preview with the left mousebutton. With the right mousebutton you always drag the coordinates of the current controlpoint (without picking other controlpoints) There are controlpoint edit buttons to "Add Point" "Insert Point" "Delete Point" With the Buttons "Prev Point" "Next Point" "First Point" "Last Point" you can step from controlpoint to controlpoint, and make other controlpoint to the curremt controlpoint. "Reset Point" "Reset All Points" does reset width, height and opacity of the controlpoint to 100% , perspective factors to 1.0 (no perspective tansformation) and rotation to 0 degree, but leaves the path (X/Y values) unchanged. "Delete All Points" removes all controlpoints. "Rotate Follow" Calculate rotate values for all controlpoints to follow the path. An object moving along a horizontal line from left to right results in an angle of 0 degree. (or a multiple of 360 degress if the path builds circular loops) A vertical Move from top to bottom gives 90 degrees. SHIFT: If this button is clicked while the Shift Key is pressed, a fix rotation offset is added to all the calculated rotation values. The rotation offset is taken from the current rotate value of controlpint 1. If an object moves from right to left the calculated angle is 180 degree and the object appears upside down. With a startoffset of 180 (or -180) you can compensate this effect. "Save Points" saves your controlpoints to file "Load Points" loads controlpoints from file The "Instant Apply" checkbox does automatic update of the preview when checked. The automatic update needs much CPU and IO power especially when big images are used as source and/or destination or those images have many layers. (dont use the instant_apply on slow machines.) Tips: - with the UpdPreview Button (or "Instant Apply" checkbox) you can blend in the selected layer of the source image. If you want to adjust position it may be useful to see the background. Therfore you can make the source image transparent (modify the opacity value) or put the sourcelayer below the background (set the layerstack to higher value) Then pres UpdPreview button again. - Whats wrong if the "UpdPreview" was pressed, but the preview does not show the source object ? - maybe the source object is an invisible layer. (if the "Force Visibility" checkbox is turned ON invisible Layers should become visible). - maybe the current opacity setting is 0% (or nearly 0%) - maybe the current X and/or Y position are outside the image - maybe the current scaling factors are 0% (or nearly 0%) and the result is only 1x1 pixel or smaller - maybe the source object has only fully transparent pixels - If you let your objects (source layers) rotatate, perform perspective transformations or change their size, set handle mode to 'Center'. If you use another handle mode you may get unwanted moves of your object, caused by resizing. - Speed: If no keyframes are set, the "Move Path" plug-in alternates the settings linear from controlpoint to controlpoint, so things move (or happen) in constant speed between 2 controlpoints. If you want to make accelerated moving obcets, you'll have to set more controlpoints with growing distances. Example: [1] [2] [3] [4] [5] [6] +---+----+-----+------+-------+ The affected range has 25 frames, and you have set 6 points with growing distances in one straight line and without specifiying keyframes for those points. That gives 5 frames (== equal time) for each part of the path, but each part has another length. This results in different (growing) speeds for each part of the path. - Keyframes Keyframes can be used optional, to fix a controlpoint to the given frame number. The first and last controlpoints are implicite keyframes, always fixed to start or end frame number. (The keyframe entry is set insensitive on the first and last contolpoint) With the help of keyframes you can control exactly when things should happen. Use a value of 0 in the keyframe entry if you dont want to fix a controlpoint to a keyframe. Keyframes are shown as absolute frame number in the "Move Path" dialog window, but they are saved as relative values in the pointfile. (if start frame = 5 and a keyframe is displayed as 7 the keyframe is internally stored as 2 (7 - 5) - Check Controlpoints - The check is done at "OK", and "Anim Preview" button, If errors are detected, they are shown in a pop-up window and the action is not performed. - The number of cntrolpoints is now checked against the number of affected frames. (You can't have more controlpoints than frames) - If keyframes are used, they must be in (ascending or descending) sequence - AnimPreview With this button you can generate an animated preview to get an idea how the inserted moving object will look like. The animated preview is generated as multilayer image and the Filter/Animation/Playback plug-in is started on that multilayer image. The button opens a dialog window, where you can enter options for the animated preview. - Object on empty frames renders quick on empty frames (filled with background color) (scale down speeds up rendering time) - Object on one frame renders quick on one frame (preview frame) (scale down speeds up rendering time) - Exact Object on frames renders slow, but exactly on the selected framerange. (scale down increases rendering time) - Scale Preview Optional you can scale down the animated preview size (100% downto 5%) - Framerate The framerate is used in the generated multilayer image only. - Copy to Video Buffer Optional you can copy the preview frames to the video buffer (can be pasted in the GIMP-GAP VCR Navigator) - Force visibility If this checkbutton is set, all source layerobjects are set visible when they are copied into frames. "Move Path" advanced settings -------------------------- - Bluebox With the bluebox check_button you can apply the bluebox filter effect on the moving object, that makes the keycolor transparent. - The Keycolor button Opens a dialog window where you can set all the parameters of the bluebox filter. If clicked with the right mouse button you can grab the keycolor from thhe current FG/BG color (in the GIMP main window) - Tracelayer a trace layer shows all positions of the moving object from begin until the position of the previous frame. Positions in virtual frames (tweens) are also included in the trace layer. If descending Opacity is used, the trace is fading out at the older (previous) Positions of the moving object. -Tweensteps This feature is for rendering fast moving Objects. The "MovePath" plug-in can calculate the moving object for virtual frames (tweens) beetween real frames. You can control this by setting tween_steps to a value greater than 0. In that case the "MovePath" plug-in creates an additional layer (the "Tweenlayer") and inserts that tween layer below the stackpostion of the current moving object in the next real frame. The tween layer shows the moving object at the positions of all virtual frames beetween two real frames. Example: The selected frame range is 10 frames and the tweensteps value is 2. In this case 28 steps are processed internal. 10 real frames + 18 virtual frames (2 virtual beetween each real frame) Use descending opacity to fade out tweens. The tween nearest to the real frame is drawn with the initial opacity value, the other tweens are reduced more and more if descending opacity is less than 100%. With tweens and opacity settings you can produce motion-blur effects for fast moving objects. If both tween processing and trace layer are active, the "Tweenlayer" is added, but set invisible. This is done because the trace layer contains already all the tween steps. A visible tween layer would produce unwanted increase of the total opacity of the moving object in the composite view. - Convert frames to one multilayered image. - ----------------------------------------- This can be done with menu: /Video/Frames to Image The selected source range of frames is copied into one new created multilayered destination Image. Each frame results in one layer in the destination image. (or nothing if the source frame has no selected layer) With the layer basename you can choose a name for the resulting layers in the destination Image. The string [####] is replaced by the frame number. Example: my_layer_[##] results in: my_layer_01, my_layer_02 .... Layer Mergemode: - Extend as necessary Build a destination layer by merging selected layers of one source frame. The destination layer's size will be the outline-rectangle of all selected layers. - Clipped to image Build a destination layer by merging selected layers of one source frame. The destination layer's size will be the image size. - Clipped to bottom layer Build a destination layer by merging selected layers of one sourceframe. The destination layer's size will be the size of the lowest selected layer. - Flattened image Build destination layer by flattening the source layers copied from one source frame. There will be no transparent parts in the destination layers. The destination layer's size will be the image size. With the 'Exclude BG-Layer' checkbutton pressed, the background layers of all the source frames are excluded from the copy, regardless if they are selected or not. Otherwise background layers are handled like all other layers. (If you are using flatten mode 'Flatten' the background color will fill all transparent parts of the resulting destination layer(s).) Layer Selection: ---------------- Here you can select which layer(s) of a frame is(are) used to build the destination layer. Select Layer(s): Pattern is equal to layer name Pattern is start of layer name Pattern is end of layer name Pattern is a part of layer name With these settings you can select layers by their layername. (All layers with a layer name matching the select pattern are selected). Pattern is layerstack number list Layers are selected by their layerstack position, where 0 is the top layer. The pattern is a list of layerstack numbers or number ranges. (0-3 matches to the upper 4 layers) Pattern is reverse-stack list" Here you can specify layerstack numbers in reverse order. (where 0 is the background layer) All Visible (ignore pattern) All visible layers are selected. (The select pattern is ignored) Select Pattern: String to identify a layer. It can be a part of the layer name or a list of layerstack numbers (like this one: "0, 2-5, 9") depending on your choice in select layer(s) above. Case Sensitive: Lowercase and upppercase letters are considered as equal if this checkbutton is set to off. Invert Selection: Select all unselected layers. Pixel Selection: How to handle selected areas in the handled frame range. "Ignore" Ignore all selections in all handled frames "Initial Frame" Use only one selection from the first handled frame, All unselected areas are set to transparent in the resulting multilayer image. All the resulting layers in the generated multilayer image are shaped by the initial selection. "Frame specific" Use selections from all handled frames. (Frames without any selection are handled as if all pixels were selected) All unselected areas are set to transparent in the resulting multilayer image. - Frames Convert - -------------- Converting multiple frames from one fileformat to another: menu: /Video/Frames Convert Basename: Name of one destination frame without the frame number part and without the extension. Extension: Extension of the destination frames. The extension also defines the fileformat. Imagetype: Keep Type Convert to RGB Convert to Gray Convert to Indexed Flatten: Merge all layers if checked. This check_button should be turned on for destination fileformats that can not store multiple layers. Example1: If your source frames are XCF-images of imagetype RGB with the names: img_000001.xcf img_000002.xcf img_000003.xcf and you want to convert to JPEG's named /tmp/scratch_000001.jpg /tmp/scratch_000002.jpg /tmp/scratch_000003.jpg you need the following convert settings: From Frame: 1 To Frame: 3 Basename: /tmp/scratch_ Extension: .jpg Imagetype: Keep Type Flatten: ON (checked) Example2: To convert from RGB JPEG fileformat (.jpg) to GIF (.gif) you have to set the destination imagetype "Convert to Indexed", because the GIF fileformat can not handle RGB, only GRAY and INDEXED) Convert to INDEXED reduces the number of colors downto 256 (or less). - Modify Frames - -------------- Start from Menu: /Video/Frames Modify The GIMP-GAP plug-in 'Frames Modify' provides the feature to perform functions on one ore more selected layer(s) in all frames of the selected frame range. The layers can be selected by (parts of) their name, or by their layerstack numbers. (for more information on layer selection see above at chapter "Convert frames to one multilayered image"). Available Functions are: "Set Layer(s) visible", "Set Layer(s) invisible", "Set Layer(s) linked", "Set Layer(s) unlinked), "Raise Layer(s)", "Lower Layer(s)", "Merge Layer(s) expand as necessary", "Merge Layer(s) clipped to image", "Merge Layer(s) clipped to bg-layer", "Apply filter on Layer(s)", "Duplicate Layer(s)", "Delete Layer(s)", "Rename Layer(s)", "Replace Selection", "Add Selection", "Subtract Selection", "Intersect Selection", "Selection None", "Selection All", "Selection Invert", "Save Selection to Channel", "Load Selection from Channel", "Delete Channel (by Name)" "Add alpha channel", "Add white layermask (opaque)", "Add black layermask (transparent)", "Add layermask from alpha", "Add layermask transfer from alpha", "Add layermask from selection", "Add layermask from bw copy", "Delete layermask", "Apply layermask" The Functions "Replace Selection", "Add Selection", "Subtract Selection", "Intersect Selection", take the Selection from the initial (invoking) frame and combines it with existing selections in all the other handled frames. The Functions: "Duplicate Layer(s)" "Rename Layer(s)" "Save Selection to Channel" "Load Selection from Channel" "Delete Channel (by Name)" require a Name in the Entry field "New Layer or Channel Name:" The function 'Apply filter on Layer(s)' brigs up a dialog window that is similar to the PDB-Browser, where you can select any available filter. If you use the PDB-Browser's button "Apply Varying", the filterparameters will slightly change in each handled frame from start to end. - If there is more than one selected layer in a frame each of the selected layers within the same frame will be processed with the same filter parameter values. (for more information see chapter 'Animated calls of Plug-In Filters' below) It is a good idea to use the same layerstack structure in all your frames. Another hint is that you assign useful names to your layers. that should be done consequent for all frames. Example 1 (useful Layertack structure/names) film_000001.xcf film_000002.xcf .... film_000010.xcf --------------------------------------------------------------------- layerstack [0] mouse_01 mouse_02 mouse_10 layerstack [1] cat_01 cat_02 cat_10 layerstack [2] tree_01 tree_02 tree_10 layerstack [3] background background background Example 2 (not recommanded) film_000001.xcf film_000002.xcf .... film_000010.xcf --------------------------------------------------------------------- layerstack [0] tree layer mouse_10 layerstack [1] bg layer cat_10 layerstack [2] layer background layerstack [3] background - Renumber Frames - --------------------------------- Start from Menu: /Video/Frames Renumber This plug-in renumbers all frames (discfiles) of a video. First Frame Number: Enter the new number for the first frame in this entry field. All frames of video are renumbered, starting at this number. Digits: Here you can enter how many digits (1 up to 6) to use for your frame numbers. Framenumbers are fileld up with leading zeros to the specified number of digits. Framenumbers that are greater than the specified number of digits will use more digits than specified, but are built without leading zeroes. If you choose 1 your framenumbers are built without any leading zeroes at all. If the frames are numbered in a non-continous way, you can make them continous with this plug-ins. (Most other GIMP-GAP features do not accept non-continous numbered frames) Example: you have the frames: film_0001.xcf film_0007.xcf film_0008.xcf After running the renumber feature with settings First Frame Number: 4 Digits: 6 the frames will be renumbered as: film_000004.xcf # old name was film_0001.xcf film_000005.xcf # old name was film_0007.xcf film_000006.xcf # old name was film_0008.xcf - Render Filename to Layer - --------------------------------- Start from Menu: /Video/ This plug-in renders the filename of the image or just the number part of the filename onto the image. If the parameter create_new_layer is 0, the filename is rendered to the active drawable (the layer that was active when this plug-in was invoked). Otherwise a new textlayer is created. Mode: "Number Only" ... render just the number part "Filename" ... render the filename without directory path "Path/Filename" ... render the filename including the directory path Fontname: Entry for the Fontname Fontsize: Fontsize in pixels PosX: Position x offset in pixels PosY: Position y offset in pixels Antialias: ON: Use Antialiasing OFF: No Antialiasing Create Layer: ON: Create a new layer, OFF: Render on the active drawable Tip: To create framenumbers in all of your frames you can use the "Modify Frames" (/Video/Frames Modify) feature and choose "Apply filter on Layer(s)" as function. In the next dialog step, the GIMP-GAP DB-Browser window select "plug_in_gap_renumber" as filter name. (this is the internal PDB-Name of the "Render Filename to Layer" plug-in) Then choose "Apply constant" in the DB-Browser window. This should open the "Render Filename to Layer" dialog window (only for the first frame) where you can adjust the settings. Choose "Number Only" mode for rendering only the framenumber part, and "Create Layer" checkbutton turned on if you want the number to be created as seperate layer. With "Create Layer" turned off the number will be rendered on (all) the layer(s) that were selected in the initial "Modify Frames" dialog window. - Change Frame Density - --------------------------------- Start from Menu: /Video/Frames Density Changing the frame density results in duplicating frames for increasing frame density, and will delete frames for decreasing the density. This feature is used to change the target framerate. Example: If you have created an animation with framerate of 8 frames/sec and want to change to a target framerate of 24 frames/sec. You should call the "Frame Density" plug-in with a density factor of 3 and increasing density mode. This makes 2 copies for each of the frames in the selected range. If you use playback at the old 8 frames/sec rate the motion is 3 times slower now. With the new Rate of 24 Frames/sec the motion is the same speed as before. The animation before the frame density change (frames 1-9): 01 02 03 04 05 06 07 08 09 (original framenumber) The animation after frame density change at growing mode and factor 3 and limited to a frame range from frame 3 to frame 8: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 (new framenumber) 01 02 03 03 03 04 04 04 05 05 05 06 06 06 07 07 07 08 08 08 09 (original framenumner) + + + + + + + + + + + + Tip: To get smooth motion in the resulting frames you may create 2 onionskin layers per frame (for the range "FromFrame" 03 "ToFrame" 20) using a setting that blends in the next 2 frames ("FrameReference" +1) at stackposition 0 FromTop of the layerstack with opacity of 66% and 50% and without ignoring any background layer(s). That way you get a cross-fading effect with smoother motion when played with 24 Frames/sec You can find onionskin in this menu: /Video/Onionskin/Configuration Density factors are limited to values from 1.0 upto 100.0. float values are supported. If you want to change from 30 frames/sec down to 15 frames/sec then use a density factor of 2 and decreasing density mode (increasing/growing mode switched off). This will delete every 2.nd frame. There is no undo, so use this feature very carefully. - Blubox Filter - -------------- Start from Menu: /Video/Bluebox The bluebox filter makes the selected keycolor transparent. The bluebox filter operates on a single layer that must be of RGB(A) type. (INDEXED and GRAY images are not supported) Keycolor: This colorbutton shows the wanted keycolor. Pixels that are similar to this color can be set more or less transparent by the bluebox filter. You can define the detection of similar colors by Threshold(s) in 4 different ways depending on threshold mode: Threshold Mode: HSV ..... has 3 seperate thresholds for hue, saturation and value and operates in the HSV colormodel. RGB ..... has 3 seperate thresholds for red, green and blue channels and operates in the RGB colormodel VALUE ... has only one single threshold for the maximum difference of red, green, and blue channels and operates in the RGB colormodel. ALL ..... has 6 seperate thresholds for HSV and RGB Thresholds All thresholds have the range from 0.0 to 1.0 where 0.0 has no tolerance the compared channel (requires exact match) and 1.0 allows the maximum tolerance (all values will match) Alpha Tolerance: Alpha tolerance value 0.0 upto 1.0 where 0.0 makes hard pixel selection by color threshold(s) greater values allow more or less variable transparency (alpha channel values) for the selected pixels within the threshold(s) depending on their difference to the keycolor. Pixels with color equal or near the keycolor appear more transparent than pixels with more color differnce. Pixels with color differences bigger than the threshold(s) are not affected by the "Alpha Tolerance" setting. Source Alpha: Select only pixels with alpha channel >= source_alpha where 0.0 is full transparent, 1.0 is full opaque. Normally this is set to 0.2 to protect the alpha_channel of pixels that are already transparent against changes by the bluebox filter. Target Alpha: Control the minimum alpha value for the selected pixels. where 0.0 sets a full selected pixel (== matching with keycolor) to full transparent, 0.5 sets a full selected pixel to half transparent and 1.0 to full opaque. Feather Edges: Enable smoothing the selection using the feather radius. Feather Radius: Feather radius in pixels, makes the selection smooth. (this is done internally by applying a blur filter on the selection that was built by keycolor, threshold(s) alpha tolerance, shrink/grow and target alpha settings) Shrink/Grow: Grow or shrink the selection in pixels, where negative values are for shrinking the selection (that was built by keycolor, threshold(s) alpha tolerance, and target alpha settings) The bluebox filter creates an image for preview of the effect. This image contains an (optinal scaled) copy of the original layer. Automatic Preview: When checked perform automatical update of the preview image on all changes of the parameter settings. Preview Button: Create or update the preview image. Previewsize: Set size of the preview image in percent of the original. - Saving frames to Videofiles: - ---------------------------- The GIMP-GAP base package provides only frontend dialogs to call MPEG encoding programs. You must have installed one of them if you want to save your finished video frames in MPEG video fileformat. UNIX Users can install the optional GIMP-GAP video encoder package, to save (==encode) frames in MPEG and other videoformats on the fly. ==> the GIMP-GAP video encoder Package is available for GIMP-1.2.x porting to GIMP-1.3 will start in december 2003 The MPEG-encoders are: 1) mpeg_encode 1.5 freely distributed Berkeley MPEG-1 Video encoder ftp://mm-ftp.cs.berkeley.edu/pub/multimedia/mpeg/bmt1r1.tar.gz (Can read video frames in the fileformats: .yuv .ppm .pnm .jpg ) (can call filterprograms to convert from other fileformats) 2) mpeg2encode 1.2 MPEG-2 and MPEG-1 encoder / decoder, version 1.2 (MPEG Software Simulation Group) Web: http://www.mpeg.org/MSSG FTP: ftp://ftp.mpeg.org/pub/mpeg/mssg E-mail: mssg@mpeg.org (author contact) (Can read video frames in the Fileformats: .yuv .ppm ) To prepare for MPEG encoding: - Use 'Frames Convert' from the video menu to convert your video frames to .ppm (or another fileformat that can be read directly by your encoder) - If you have a layerstack-animated multilayer image you can use 'Split Img to Frames' from the video menu. - If you are using mpeg_encode and height or width are not multiples of 16: Use 'Frames Scale' or 'Frames Crop' from the video menu on the newly converted/created video frames. - Then use 'Encode/MPEG2 (mpeg2encode)' or 'Encode/MPEG1 (mpeg_encode)' from the video menu. (Invoked from one of the prepared video frames) Both encoders offer a lot of parameter settings for the experienced User. The parameters are passed to the encoder in a parameterfile. The frontend dialog shows only the most important parameters, but generates a documented parameterfile with default values for the other parameters. You can generate the parameterfile with or without starting the encoder. (You may start the encoder later by executing the startscript from a Unixshell. The startscript is generated by the frontend dialog) For more information on the parameters please refer to the encoders documentations. - NO UNDO: - -------- There is no Undo for the video frame based GIMP-GAP video plug-ins. If you step to the next frame (menu: /Video/Goto Next) the current frame is saved to disk and the next frame is loaded into the image. All undo steps were cleared at this time. - About Locks - ----------- All the GIMP-GAP plug-ins are using a lock. This lock disables to run other GIMP-GAP plug-ins (or the same plug-in twice) on the same image at the same time, while the current GIMP-GAP plug-in is working on that frame. GIMP-GAP keeps a locktable (for the current session) that contains the image_id's of all images currently locked by GIMP-GAP plug-ins. If you cancel a running GIMP-GAP plug-in with the cancel button in the progress window, or kill it from your operating sytem the lock may remain. (This should only happen to WINDOWS users, for UNIX users locks are checked for dead process ids) To unlock you can save the current frame image, close all views to that image, then reload the frame image. (or quit and restart the GIMP) WARNING: It is not recommanded to open more than one frame of an animation at the same time. (menu: File/Open "img_000001.xcf" menu: File/Open "img_000002.xcf") In this constellation both gap plug-ins may concurrent in save/load to/from the same file. Example: call from "img_000001.xcf" Video/Delete Frames (range 000001 to 000003) now img_000004.xcf is renamed to img_000001.xcf img_000005.xcf is renamed to img_000002.xcf then call from "img_000002.xcf" Video/Goto First the img_000002.xcf (its old content) is saved, overwiting wht was img_000004.xcf before. If you make the 2.nd call while the 1.st one is in progress, you may trash your frames (2 writers on one file) and/or crash your GIMP session. - Animated calls of plug-in filters: - ---------------------------------- First of all, you need a multilayered Image. You can use "/Video/Frames to Image" to create one from a series of frames, or duplicate the backround layer of a single layered image (Press Ctrl-C within the layers dialog window N-times) Then call from wihin the multilayer image: "/Filters/Filter all Layers" You'll get a window similar to the PDB-Browser, that shows all available plug-ins in a listbox (and informations about the selected plug-in on the right side). Note: The listbox does not show the full PDB. (Plug-Ins without run-mode, image, drawable parameters are never listed here, regardless to your wildcard selection) Select one of the listed plug-ins and press one of the buttons: "Apply Varying": The selected plug-in is called 2 times in interactive mode, 1. for the backround layer 2. for the top layer. For all further layers, the plug-in will work non-interactive with the iterated inbetween values. Therefore the plug-in must have an "_Iterator" or "_Iterator_ALT" procedure, to modify the "last stored values" (GIMP-GAP provides such procedures for more than 50 existing plug-ins) If the iterator procedure is not available, the "Apply Varying" button is set insensitive on the selected procedure. Note: It is possible to iterate values of the type PARAM_DRAWABLE, (such as the BumpMap in plug_in_bump_map: You may use a layerstack-animated Image as animated Bump-map) This will only work, if from and to values are layers within the same image. The iteration is done on the layerstackindex in that case. and the inbetween values for the non-interactive filtercalls will be the layers between the from and to layerstackindex. (an animation sequence as the user might expect) "Apply Constant": The selected plug-in is called only once in interactive mode, For all further layers, the plug-in will work non-interactive using the last stored values. The script sel-to-anim-img.scm simplifies the creation of animated images. Invoke the script from: "/Script-Fu/Animators/Sel To AnimImage" The script creates a new image with n copies of the current selection. Then it invokes the animated call of plug-in filters (optional) on the generated new image. Note: - Some plug-ins may not work correct or crash when called in NON_INTERACTIVE mode. (see TESTPROT_iter_ALT) - Some pug-in's in your PDB can have earlier or later versions If their interfaces were changed and does not match with the interface version of the iterator procedure you get the message:(in the shell window) ERROR: xxxx_Iterator stored Data missmatch in size N != M when using the "Apply Varying" button. In that case you can try to generate the needed _Iterator procedure for your plug-ins current interface by yourself. (see file: README_devlopers) - How to write (or generate) animated plug-ins: (see file: README_devlopers) - Filtermacro scripts: - -------------------- Start from Menu: "/Filters/Filtermacro" WARNINGS: - fltermacro scripts are a temporary solution. Support may be removed in future releases of gimp-gap. - filtermacros are restricted to plug-ins that are able to run with LAST_VALUES. - filtermacro scriptfiles are machine dependent, plug-in version dependent, and may not work in the expected way or even crash at execution on other machines or on execution with newer versions of the recorded filter plug-ins. Filename: Name of the filtermacro scriptfile. Delete All button: Delete the filtermacro scriptfile. Delete button: Delete the currently selected filtercall from the filtermacro scriptfile. Add Add a new filtercall to the filtermacro scriptfile. This button opens a PDB browser dialog window, where you can select filters that have been already used within the current GIMP-session. The PDB browser will show only filters that can operate on a drawable and have stored the parameters of the last run (in the current Session) Cancel Close the window. OK Close the window and apply all the filtercalls that are listed in the filtermacro scriptfile with their recorded parameters to the current drawable. (this is the drawable from where the 'Filter Macro' dialog was invoked from) Tip: Filtermacro execution can be used in the same way as a single filtercall, together with the 'Filter All Layers' and the 'Frames Modify' features of gimp-gap. This way you can apply a set of filtercalls on all layers of a multilyer image (or on all selected layers in multiple frames) at once -------------------------------------------------------------------- Video Configuration (gimprc) -------------------------------------------------------------------- There are optional configuration values for the GIMP-GAP video plug-ins. Those values are stored in your personal gimprc file (located in $HOME/.gimp-1.3/gimprc) or in the system-wide gimprc file (usually located at /usr/local/etc/gimp/1.3/gimprc) If you edit gimprc files by hand, you must do this before you startup GIMP. # there are 2 Values to define direcory and basename # for Video Copy/Cut/Paste operations (video-paste-dir "/home/hof/gap_video_paste_dir") (video-paste-basename "gap_video_paste_") # the video-confirm-frame-delete can have values "yes" or "no" # where "no" does not show the confirm dialog windows when the user # tries to delete video frames of the video. # (default is "yes") (video-confirm-frame-delete "yes") # optional external audioconverter program # must be able to handle the same parameters as the # standard converter script audioconvert_to_wav.sh # There is NO need for the audioconvert_program gimprc configuration # if you use the standard converter script. (audioconvert_program "/usr/local/bin/my_private_audioconverter") # NON-XCF frame save behaviour: # ----------------------------- # if you want to use GIMP-GAP with other fileformats than XCF # for your frames, you will get a warning dialog at the first # attempt (per GIMP-session) to save one of the frames with GIMP-GAP plug-ins. # If you dont want this warning dialog, you can use the gimprc # file to configure how GIMP-GAP should save frames depending on the # extension. # for all configured fileformat extensions GIMP-GAP uses the configuration from the # gimprc file and does not show the warning dialog. # Here are recommanded gimprc configuration settings # for some common used fileformats: (video-save-flattened-jpg "yes") (video-save-flattened-jpeg "yes") (video-save-flattened-bmp "yes") (video-save-flattened-png "yes") (video-save-flattened-ppm "yes") (video-save-flattened-xjt "no") (video-save-flattened-gif "no") ====================================================== Internal PDB names and menu names of GIMP-GAP plug-ins ====================================================== plug_in_bluebox "/Video/Bluebox" plug_in_filter_macro "/Filters/Filtermacro" plug_in_gap_anim_crop "/Video/Frames Crop" plug_in_gap_anim_resize "/Video/Frames Resize" plug_in_gap_anim_scale "/Video/Frames Scale" plug_in_gap_del "/Video/Delete Frames" plug_in_gap_density "/Video/Frames Density" plug_in_gap_dup "/Video/Duplicate Frames" plug_in_gap_exchg "/Video/Exchange Frame" plug_in_gap_first "/Video/Goto First" plug_in_gap_goto "/Video/Goto Any" plug_in_gap_last "/Video/Goto Last" plug_in_gap_layers_run_animfilter "/Filters/Filter all Layers" plug_in_gap_modify "/Video/Frames Modify" plug_in_gap_move "/Video/Move Path" plug_in_gap_mpeg2encode "/Video/Encode/MPEG2 (mpeg2encode)" plug_in_gap_mpeg_encode "/Video/Encode/MPEG1 (mpeg_encode)" plug_in_gap_navigator "/Video/VCR Navigator" plug_in_gap_next "/Video/Goto Next" plug_in_gap_onionskin_configuration "/Video/Onionskin/Configuration" plug_in_gap_prev "/Video/Goto Prev" plug_in_gap_range_convert "/Video/Frames Convert" plug_in_gap_range_flatten "/Video/Frames Flatten" plug_in_gap_range_layer_del "/Video/Frames LayerDel" plug_in_gap_range_to_multilayer "/Video/Frames to Image" plug_in_gap_renumber "/Video/Frames Renumber" plug_in_gap_shift "/Video/Framesequence Shift" plug_in_gap_split "/Video/Split Img to Frames" plug_in_gap_videoframes_player "/Video/Playback" plug_in_gap_xanim_decode "/Video/Split Video to Frames/Any XANIM readable" plug_in_gap_xanim_decode_toolbox "/Xtns/Split Video to Frames/Any XANIM readable" script-fu-selection-to-anim-image "->Script-Fu->Animators->Sel To AnimImage" plug_in_gap_get_animinfo ** NON_INTERACTIVE batchscript API plug_in_gap_move_path_ext ** NON_INTERACTIVE batchscript API plug_in_gap_move_path_ext2 ** NON_INTERACTIVE batchscript API using a controlpoint file plug_in_gap_set_framerate ** NON_INTERACTIVE batchscript API plug_in_gap_video_edit_clear ** NON_INTERACTIVE batchscript API plug_in_gap_video_edit_copy ** NON_INTERACTIVE batchscript API plug_in_gap_video_edit_paste ** NON_INTERACTIVE batchscript API